package db;

/**
 * Beinhaltet alle Datenbankabfragen für
 * die Verknüpfung von Trainingsplänen
 * und den zugehörigen Übungen
 *
 * @author felix
 */
public class trainingplanexercises {
    /**
    * Erstellt eine neue Verknüpfung von einem Trainingsplan und Übungen
    * @author felix
    * @param exercises Array mit allen Übungen für einen Trainingsplan
    * @param id ID des Trainingsplans
    */
   public static void createTrainingsplanexercises (String[][] exercises, String id) {
            String trainingPlanId = null;
            if(id == null){
                trainingPlanId = db.trainingplans.getLatestTrainingsplanId();
            } else {
                trainingPlanId = id;
            }

            Integer order = 1;

            for(String[] exercise: exercises)
            {
                String sql = "INSERT INTO trainingplanexercises ";
                sql += "(`trainingPlan.ID`,`exercise.ID`, `order`) VALUES (?, ?, ?)";
                String orderString = order.toString();
                String[] param = {trainingPlanId, exercise[1], orderString};
                db.MySQLConnection.getInstance().executeStatement(sql, param);

                order++;
            }     
    }

    /**
    * Löscht die Verknüpfung von einem Trainingsplan und seiner Übungen
    * @author felix
    * @param trainingplan ID des Trainingsplans
    */
    public static void deleteTrainingsplanexercises (String trainingplan) {
            String sql = "DELETE FROM trainingplanexercises WHERE `trainingPlan.ID` = ?";
            db.MySQLConnection.getInstance().executeStatement(sql, trainingplan);
    }

    /**
    * Sucht Übungen für einen Trainingsplan
    * @author felix
    * @param id ID des Trainingsplans
    * @return Array mit allen IDs der Übungen für einen Plan
    */
    public static String[][] getTraingplanExercisesByTrainingplanId (String id){
        String sql = "SELECT `exercise.ID` FROM trainingplanexercises WHERE `trainingPlan.ID`=" + id + " ORDER BY `order` ASC";
        String exercises[][] = db.MySQLConnection.getInstance().getGenericQuery(sql);
        
        return exercises;
    }

}
